package in.rob.client.widget; import in.lib.Constants; import in.lib.manager.CacheManager; import in.lib.manager.UserManager; import in.rob.client.MainActivity; import in.rob.client.R; import java.util.ArrayList; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import com.google.android.apps.dashclock.api.DashClockExtension; import com.google.android.apps.dashclock.api.ExtensionData; public class RobinDashClockExtension extends DashClockExtension { @Override protected void onInitialize(boolean isReconnect) { super.onInitialize(isReconnect); setUpdateWhenScreenOn(true); } @Override protected void onUpdateData(int reason) { SharedPreferences prefs = getSharedPreferences(getPackageName(), Context.MODE_PRIVATE); String user = prefs.getString(Constants.PREFS_DASH_USER_ID, UserManager.getUserId()); int count = prefs.getInt(Constants.PREFS_NOTIFICATION_COUNT + user, 0); Intent intent = new Intent(this, MainActivity.class); intent.putExtra(Constants.EXTRA_START_PAGE, 1); intent.putExtra(Constants.EXTRA_FORCE_REFRESH, true); intent.putExtra(Constants.EXTRA_SELECT_USER, user); intent.putExtra(Constants.EXTRA_CLEAR_DASH, true); ArrayList<String> lines = CacheManager.getInstance().readFileAsObject(Constants.PREFS_NOTIFICATION_PREVIEW_LINES + user, ArrayList.class); if (count > 0 && lines != null && lines.size() > 0) { // Publish the extension data update. publishUpdate(new ExtensionData() .visible(true) .icon(R.drawable.notif) .status("" + count) .expandedTitle(count + " new") .expandedBody(lines.get(lines.size() - 1)) .clickIntent(intent) ); } else { publishUpdate(null); } } }